home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / msdos / editors / chiaro / gifstrip.doc < prev    next >
Text File  |  1993-03-12  |  30KB  |  740 lines

  1. GIFSTRIP 2.2 DOCUMENTATION
  2. ==========================
  3. James W. Birdsall
  4. 03/19/93
  5.  
  6.  
  7. 0. CONTENTS
  8. -----------
  9.    0.      CONTENTS
  10.    1.      INTRODUCTION
  11.     1.1     Quick Reference
  12.     1.2     Copyright, License, and Warranty Disclaimer
  13.    2.      USAGE
  14.     2.1     Targets
  15.      2.1.1   Wildcards
  16.     2.2     Options
  17.      2.2.1   Output redirection options
  18.      2.2.2   Rebuilding and processing options
  19.      2.2.3   Temporary Storage Options
  20.      2.2.4   -# Version
  21.      2.2.5   -? Help
  22.    3.      OUTPUT
  23.     3.1     File Header Line
  24.     3.2     Internal Section Lines
  25.      3.2.1   Image
  26.      3.2.2   Extension Block
  27.      3.2.3   Other Lines
  28.     3.3     Terminator Line
  29.     3.4     No Rebuild
  30.     3.5     Rebuild
  31.     3.6     Examples
  32.    4.      THE END
  33.  
  34.  
  35. 1. INTRODUCTION
  36. ---------------
  37.  
  38.    GIFSTRIP is a program of the Chiaro suite. It removes excess
  39. characters, if present, from GIF-format image files. Excess characters
  40. may be added in a variety of ways, including XMODEM-protocol file
  41. transfers or transfer from a Macintosh computer. I have observed files
  42. with anywhere from one byte to 13K of excess characters; in the latter
  43. case, the size of the file was almost doubled. GIFSTRIP also does some
  44. basic file analysis and enforces a few format requirements which are
  45. sometimes ignored. For temporary storage, it can use disk files and most
  46. types of memory. By default, it uses all available types of memory first
  47. and only uses disk space to make up the shortfall if there is not enough
  48. space available among all the different types of memory (see section
  49. 2.2.3 for a more detailed discussion). By default, GIFSTRIP also keeps
  50. the original file around until the new file has been written to disk
  51. successfully (see section 2.2.2 for a more detailed discussion).
  52.  
  53.  1.1 Quick Reference
  54.  -------------------
  55.  
  56.     This is a quick summary of the usage and options of GIFSTRIP.
  57. Invoking GIFSTRIP with the option "-?" will produce a similar summary.
  58. Complete explanations may be found in section 2.
  59.  
  60.    usage: gifstrip [options] target [target ...]
  61.       target       filename, filename with wildcards, or path. Wildcards
  62.                     are *, ?, and ranges or groups specified in []. A
  63.                     range or group may be complemented with ^ or !.
  64.  
  65.       -b           BATCH: suppresses all console output. Should be first
  66.                     on the line. Returns ERRORLEVEL 0 if OK or stripped
  67.                     OK, 1 if a non-GIF file was found, 2 if the GIF file
  68.                     ended unexpectedly, or 3 on error.
  69.       -r           Sends error messages to stderr instead of stdout.
  70.  
  71.       -f           Forces rebuild. Normally file is not rebuilt if no
  72.                     extra characters are found and file meets format
  73.                     requirements.
  74.       -n           Disables strict format requirements.
  75.       -m           Enables checking for leading junk characters (from a
  76.                     Mac, for example).
  77.       -o           Causes the original file to be erased before the new
  78.                     file is written to disk. This is useful if the disk
  79.                     is nearly full and there is not enough room for two
  80.                     copies of the file.
  81.  
  82.       -c           Do not use CONVENTIONAL memory for temporary storage.
  83.       -e           Do not use EMS memory for temporary storage.
  84.       -x           Do not use XMS memory for temporary storage.
  85.       -d           Do not use DISK for temporary storage.
  86.       -s           Use ONLY DISK for temporary storage. Equivalent to
  87.                     the combination -c -e -x.
  88.       -tpath       Specify path for DISK temporary storage.
  89.  
  90.       -#           VERSION: Prints version information on internal
  91.                     modules, then exits.
  92.  
  93.    GIFSTRIP automatically reads a list of targets from stdin if stdin is
  94. redirected. Targets must be separated by newlines, and are
  95. wildcard-expanded in the same way as command-line targets. Note that
  96. command-line targets are ignored if stdin is redirected; if stdin is not
  97. redirected, there must be at least one target on the command line.
  98.  
  99.    Note that at least one of conventional, EMS, XMS, or disk storage
  100. must be allowed.
  101.  
  102.    Options are case-insensitive, and may not be combined.
  103.  
  104.  1.2 Copyright, License, and Warranty Disclaimer
  105.  -----------------------------------------------
  106.  
  107.    The Graphics Interchange Format(c) is the Copyright property of
  108. CompuServe Incorporated. GIF(sm) is a Service Mark property of
  109. CompuServe Incorporated.
  110.  
  111.    GIFSTRIP is not in the public domain. All the files are copyright
  112. 1993 by James W. Birdsall, all rights reserved.
  113.  
  114.    The following license applies to the entire Chiaro suite, which is
  115. made up of all the files listed in the file MANIFEST. Permission is
  116. granted to do the following:
  117.  
  118.         You may freely redistribute this archive, so long as it contains
  119.         all the files listed in the file MANIFEST, intact and
  120.         unmodified.
  121.  
  122.         You may use the programs contained in this archive for a period
  123.         of 30 days for evaluation purposes.
  124.  
  125.    Payment of the $10 shareware fee (which covers all the programs in
  126. the Chiaro suite) licenses you to use the Chiaro suite beyond the
  127. evaluation period. This license-to-use specifically includes use by
  128. bulletin board systems and other commercial or private information
  129. services.
  130.  
  131.    Registered users will also receive update notices and bug reports,
  132. and are entitled to use future versions without further payment.
  133.  
  134.    The contents of the distribution archive, and all other related
  135. files, information, and services are provided "as is" and without
  136. warranty. To the extent permitted by applicable law, the author
  137. disclaims all warranties, express or implied, including but not limited
  138. to, any implied warranty of merchantability or fitness for a particular
  139. purpose. While effort has been made to ensure that the files,
  140. information, and services are accurate and correct, the author shall not
  141. be liable for damages arising out of the use of or inability to use this
  142. product, including but not limited to, loss of profit, data, or use of
  143. this software, or special, incidental, or consequential damages or other
  144. similar claims, even if the author has been specifically advised of the
  145. possibility of such damages. Some states do not allow the exclusion of
  146. incidental or consequential damages, so the foregoing limitation may not
  147. apply to you.
  148.  
  149.    Information on contacting the author is provided at the end of this
  150. file.
  151.  
  152.  
  153. 2. USAGE
  154. --------
  155.  
  156.    GIFSTRIP may be called with zero or more options interspersed with
  157. zero or more targets. All options are scanned before any file searching
  158. is done, so order of options and targets is unimportant. If the standard
  159. input is not redirected, at least one target must be specified on the
  160. command line. If the standard input is redirected (is not the keyboard),
  161. GIFSTRIP will detect this and will attempt to read a list of targets,
  162. separated with newlines, from the standard input. Targets on the command
  163. line will be ignored, but options on the command line will be used. This
  164. feature is for use with the "front end" option of CHILS.
  165.  
  166.    GIFSTRIP requires 110,000 bytes of free conventional memory to run.
  167. Additional free conventional memory (and/or free EMS and/or XMS memory)
  168. improves performance.
  169.  
  170.  2.1 Targets
  171.  -----------
  172.  
  173.    A target can consist of a filename (optionally with path), a path, or
  174. a filename with wildcards (again, optionally with path). In the case of
  175. a filename, that file is checked. In the case of a path, all files in
  176. the specified directory are checked. In the case of a filename with
  177. wildcards, all files in the appropriate directory (the current directory
  178. if no path is given) matching the wildcards are checked.
  179.  
  180.    If a file that is checked is a GIF format file, it is processed. If
  181. it is not, it is not processed.
  182.  
  183.   2.1.1 Wildcards
  184.   ---------------
  185.  
  186.    Wildcards are much closer to the UNIX standard than the MS-DOS
  187. standard. The characters * and ? retain their ordinary meanings but
  188. matching is much more intelligent. For example, *A.GIF will match
  189. LENNA.GIF but not CHESS.GIF, whereas under ordinary MS-DOS wildcards,
  190. *A.GIF would match both. Further, groups and ranges of characters may be
  191. specified in brackets []. For example, PIC0[1-5].GIF will match any
  192. filename starting with "PIC0", then containing any one of the characters
  193. "1", "2", "3", "4", or "5", and ending with ".GIF". PIC0[1-5A-F].GIF
  194. will match the names described before or those with the characters
  195. "A", "B", "C", "D", "E", or "F" between "PIC0" and ".GIF".
  196.  
  197.    A range or group may be complemented with the characters "^" or "!".
  198. For example, PIC0[^1-5].GIF will match any name with one character
  199. between "PIC0" and ".GIF" unless that character is "1", "2", "3", "4",
  200. or "5".
  201.  
  202.    Note that wildcards are only allowed in the filename portion, not the
  203. path portion. "\PICTURES\NEWGIF*\*.GIF" is illegal and an error message
  204. will be issued.
  205.  
  206.  2.2 Options
  207.  -----------
  208.  
  209.    GIFSTRIP has a variety of options to modify its function, including
  210. options to control the types of temporary storage used, the level of
  211. processing done, etc. These options are described below. Options are
  212. case-insensitive ("-x" is the same as "-X") and may not be combined
  213. ("-xe" will not have the desired effect, since only the "-x" will be
  214. recognized; "-x -e" should be used instead).
  215.  
  216.   2.2.1 Output redirection options
  217.   --------------------------------
  218.  
  219.    The following options specify where various types of output should be
  220. sent.
  221.  
  222.    2.2.1.1 -b Batch
  223.    ----------------
  224.  
  225.    The -b option causes GIFSTRIP to operate in batch mode. All console
  226. output is suppressed. This option should be first on the command line or
  227. other options may generate console output before this option is found.
  228. When in batch mode, GIFSTRIP adjusts the ERRORLEVEL return to reflect
  229. the results of processing. ERRORLEVEL is set to:
  230.  
  231.         0       if the file was a GIF format file and did not need stripping,
  232.                  or was stripped OK
  233.         1       if the file was not a GIF format file
  234.         2       if GIFSTRIP encountered an unexpected end-of-file
  235.         3       if there was any other error
  236.  
  237. NOTE: the ERRORLEVEL reflects only the results of the last file
  238. processed. Therefore, in batch mode only one file should be specified on
  239. the command line.
  240.  
  241.    2.2.1.2 -r Error Redirect
  242.    -------------------------
  243.  
  244.    Normally error messages are sent to the standard output stream, along
  245. with all other output from GIFSTRIP. However, error messages can be
  246. redirected to the standard error output stream with the -r option. This
  247. means that error messages will appear on the screen even if output is
  248. redirected to a file with the DOS ">" or "|" output redirection
  249. operators. Note that the error message will not appear in the file,
  250. however.
  251.  
  252.  
  253.   2.2.2 Rebuilding and processing options
  254.   ---------------------------------------
  255.  
  256.    The following options determine when a file needs to be rebuilt, and
  257. how the rebuilding is done.
  258.  
  259.    2.2.2.1 -f Forced Rebuild
  260.    -------------------------
  261.  
  262.    The -f option forces GIFSTRIP to rebuild the file. Normally, the file
  263. is rebuilt only if extra characters are found or if the file does not
  264. meet the format requirements. The format requirements are discussed
  265. under the -n NOSTRICT option below.
  266.  
  267.    2.2.2.2 -n Nostrict
  268.    -------------------
  269.  
  270.    This option disables strict format checking. Normally, the following
  271. violations are checked for:
  272.  
  273.       (GIF87a only)    Global or local color table sorted flag set.
  274.       (GIF87a only)    Aspect ratio value nonzero.
  275.       (GIF87a, GIF89a) Local color table size given but local color table
  276.                         flag not set (no local color table).
  277.       (GIF89a only)    Local color table sorted flag set, but local color
  278.                         table not present.
  279.  
  280.    If the -n option is used, any of the violations listed above which
  281. are present in the original file will also be present in the rebuilt
  282. file if the file is rebuilt. If there are no extra characters and the -f
  283. option is not used, the file will not be rebuilt even if any of these
  284. violations are present.
  285.  
  286.    2.2.2.3 -m Mac
  287.    --------------
  288.  
  289.    This option handles files which have junk bytes before the GIF format
  290. signature. These files are typically generated by the Macintosh
  291. computer, hence the name of the option. GIFSTRIP searches through the
  292. file, starting at the beginning, looking for the GIF format signature,
  293. and starts rebuilding the file when it finds it.
  294.  
  295.    2.2.2.4 -o Overwrite
  296.    --------------------
  297.  
  298.    By default, when rebuilding GIFSTRIP retains the original file until
  299. the rebuilt file has been completely written to disk. Thus, in case of
  300. error, either the original file or the rebuilt file will exist on disk
  301. no matter when GIFSTRIP is aborted, providing a measure of security.
  302. However, sometimes it is necessary to process a file which is on a
  303. nearly-full drive, with insufficient room for a second copy of the file.
  304. This option causes GIFSTRIP to erase the original file before starting
  305. to write the rebuilt file. For maximum security, it is recommended that
  306. you use the -s option (described below) in conjunction with this option,
  307. but in order to do so you will need another drive which does have
  308. sufficient room and you will have to use the -t option (also described
  309. below) to place the temporary file on that drive, or GIFSTRIP will
  310. attempt to place the temporary file on the same drive, note that there
  311. isn't enough room, and refuse to process the original file.
  312.  
  313.  
  314.   2.2.3 Temporary Storage Options
  315.   -------------------------------
  316.  
  317.    GIFSTRIP supports a wide variety of temporary storage. It can use:
  318. conventional memory, expanded memory (LIM EMS version 3.0 or above),
  319. extended memory (only if an XMS driver is present; common XMS drivers
  320. are Microsoft's HIMEM.SYS and Quarterdeck's QEMM), or a temporary file
  321. on disk. It automatically detects the presence of EMS and XMS.
  322.  
  323.    These choices fall into two general categories: memory and disk.
  324. There are advantages and disadvantages associated with each. Memory is
  325. much faster. However, if there is a catastrophic malfunction while the
  326. file is being recopied, the file could be damaged if you are using the
  327. -o option without the -s option -- the original file has already been
  328. erased and the new file has not been completed yet. Disk is slower, but
  329. safer. If there is a catastrophic malfunction, the temporary file will
  330. still be present and intact.
  331.  
  332.    Options have been provided to allow the user to disable any of the types
  333. of temporary storage, and to relocate the temporary file in the case of
  334. disk storage. GIFSTRIP searches in this order: conventional, EMS, XMS,
  335. disk. It skips any types that have been disabled. If there is not enough
  336. available in one type, it uses all of that type and goes on to the next
  337. type, until the total of all types used is sufficient. It can handle
  338. multiple blocks of XMS. Note that at least one type of temporary storage
  339. must be available and enabled; also note that GIFSTRIP will not process
  340. a file for which it cannot allocate as many bytes of temporary storage
  341. as are in the original file. By default, all types that are available in
  342. the system are used.
  343.  
  344.    2.2.3.1 -c Disable Conventional
  345.    -------------------------------
  346.  
  347.    This option disables use of conventional memory.
  348.  
  349.    2.2.3.2 -e Disable EMS
  350.    ----------------------
  351.  
  352.    This option disables use of expanded (EMS) memory.
  353.  
  354.    2.2.3.3 -x Disable XMS
  355.    ----------------------
  356.  
  357.    This option disables use of XMS memory.
  358.  
  359.    2.2.3.4 -d Disable Disk
  360.    -----------------------
  361.  
  362.    This option disables use of disk for temporary storage.
  363.  
  364.    2.2.3.5 -s Safety (use only disk)
  365.    ---------------------------------
  366.  
  367.    This option disables use of all types of memory. It is equivalent to
  368. the combination -c -e -x.
  369.  
  370.    2.2.3.6 -tpath Temporary File Path
  371.    ----------------------------------
  372.  
  373.    This option specifies a path for the disk temporary file. By default,
  374. the temporary file is placed in the same directory as the original file.
  375. There must not be a space between the -t and the path. The temporary
  376. file is always called "GIFSTRIP.$$$" regardless of location.
  377.  
  378.   2.2.4 -# Version
  379.   ----------------
  380.  
  381.    This option is intended more for bug reporting purposes than anything
  382. else. It causes GIFSTRIP to print the version numbers and compilation
  383. dates of its component modules. No files are processed, and all other
  384. options are ignored.
  385.  
  386.   2.2.5 -? Help
  387.   -------------
  388.  
  389.    This option, or any syntax error on the command line, causes a usage
  390. message to be displayed. No files are processed, and all other options
  391. are ignored.
  392.  
  393.  
  394. 3. OUTPUT
  395. ---------
  396.  
  397.    GIFSTRIP produces at least two lines of output for each file. In some
  398. cases, GIFSTRIP may produce several pages of output.
  399.  
  400.    For each file specified, GIFSTRIP outputs the line "Processing xxx...",
  401. where xxx is the name and path (if present) of the file.
  402.  
  403.    If the file is not a GIF format file, GIFSTRIP outputs the message
  404. "ERROR: File is not a GIF format file." and proceeds to the next file.
  405.  
  406.  3.1 File Header Line
  407.  --------------------
  408.  
  409.    GIFSTRIP prints a line containing general information about the file.
  410. For example:
  411.  
  412. GIF87A  G--   21463    250 x   200 @ 128   G:\JUNK\VLA.GIF
  413. GIF89A  G-A   34256    320 x   200 @ 256   G:\JUNK\GLASS.GIF
  414.  
  415. The first column is the format. The next column contains three flags.
  416. The first flag is "G" if the file contains a global color table, or "-"
  417. if it does not. The second flag is "S" if the global color table is
  418. sorted in order of decreasing importance, or "-" if it is not. It will
  419. always be "-" for GIF87a files. The third flag is "A" if an aspect ratio
  420. is specified, or "-" if it is not. It will always be "-" for GIF87a
  421. files. The third column is the size of the file in bytes. The next two
  422. columns, not including the 'x' which is present for formatting purposes
  423. only, are the width and height of the logical screen, in pixels. The
  424. next column, not counting the '@' which is present for formatting
  425. purposes only, is the number of colors in the global color table, if
  426. any. If there is no global color table, "---" is displayed. The last
  427. column is the filename.
  428.  
  429.    If GIFSTRIP encounters in the file header one of the format
  430. violations listed under the -n NOSTRICT option, and the -n option is not
  431. in effect, it will print a message describing the violation after the
  432. file header line. This message will start with "FYI:".
  433.  
  434.  3.2 Internal Section Lines
  435.  --------------------------
  436.  
  437.    After the file header line, GIFSTRIP prints lines describing the
  438. internal sections of the file. There are two major types of internal
  439. sections: images and extension blocks. The GIF89a format describes
  440. several types of dedicated extension block; GIFSTRIP recognizes these
  441. and names them as it finds them.
  442.  
  443.   3.2.1 Image
  444.   -----------
  445.  
  446.    An example of an image line is:
  447.  
  448.    G-S  (  0,  0)    250 x   200 @ 128   20970BY    83BL
  449.  
  450.    The first column contains three flags. The first flag is "G" if this
  451. image uses the global color table, or "L" if it uses a local color
  452. table. The second column is "S" if there is a local color table and it
  453. is sorted, or "-" if not. It will always be "-" for GIF87a files. The
  454. third flag is "S" if the image lines are stored sequentially or "I" if
  455. the image lines are stored in an interlaced format.
  456.  
  457.    The next two columns, not including the parentheses etc., are the
  458. coordinates of the upper left corner of the image on the logical screen.
  459. These coordinates are in the format (horizontal offset to right,
  460. vertical offset down), measured in pixels from the upper left corner of
  461. the logical screen (0,0).
  462.  
  463.    The next two columns, not including the 'x', are the width and height
  464. of the image, in pixels. The following column, not counting the '@', is
  465. the number of colors in the global or local color table, depending on
  466. which the image uses.
  467.  
  468.    The last two columns are the number of bytes and blocks in the image,
  469. respectively. In the example, there are 20970 bytes of image data, which
  470. are broken up into 83 blocks.
  471.  
  472.    If GIFSTRIP encounters in an image one of the format violations
  473. listed under the -n NOSTRICT option, and that option is not in effect,
  474. it will print a message describing the violation _before_ it prints the
  475. image line for that image. This message will start with "FYI:".
  476.  
  477.   3.2.2 Extension Block
  478.   ---------------------
  479.  
  480.    When an extension block is encountered, GIFSTRIP will print one of
  481. several lines. If the format is GIF87a, or the extension block is not
  482. one of the four dedicated types defined in GIF89a, GIFSTRIP prints:
  483.  
  484.    Type xxx Extension Block
  485.  
  486. where xxx is the type number given in the extension block header. If it
  487. is one of the four dedicated types defined under GIF89a, GIFSTRIP
  488. prints:
  489.  
  490.    Plain Text Extension Block
  491.    Graphic Control Extension Block
  492.    Comment Extension Block
  493.    Application Extension Block
  494.  
  495. as appropriate.
  496.  
  497.    After identifying the extension type, GIFSTRIP then prints the number
  498. of bytes and blocks in the extension block, on the same line, in the
  499. same format as for an image.
  500.  
  501.   3.2.3 Other Lines
  502.   -----------------
  503.  
  504.    GIFSTRIP may issue error messages at any time. These will begin with
  505. "WARNING:", "ERROR:" or "FATAL ERROR:".
  506.  
  507.    There are two other messages that GIFSTRIP may issue:
  508.  
  509.    If GIFSTRIP is used with the -m MAC option and encounters leading
  510. junk bytes, it prints an "FYI:" message stating that leading junk bytes
  511. have been skipped over and gives the number of bytes skipped. This
  512. message appears before the file header line.
  513.  
  514.    If GIFSTRIP encounters extraneous characters between sections, it
  515. will issue an "FYI:" message describing the violation and giving the
  516. number of extraneous characters. This message appears between the lines
  517. describing the sections on either side of the extraneous characters.
  518. This is an FYI message because, technically, GIFSTRIP can fix the
  519. problem. However, extraneous characters between sections are forbidden
  520. by the format specification. If present, they indicate a serious problem
  521. in the encoder which produced the image, or, more likely, a corrupt GIF
  522. file.
  523.  
  524.  3.3 Terminator Line
  525.  -------------------
  526.  
  527.    If the file is not corrupt, GIFSTRIP will eventually come to the GIF
  528. format terminator character. When it encounters this, it prints:
  529.  
  530.    GIF Terminator
  531.  
  532. and ceases processing the original file. It then determines whether the
  533. file needs to be rebuilt or not.
  534.  
  535.  3.4 No Rebuild
  536.  --------------
  537.  
  538.    If the file does not need to be rebuilt, GIFSTRIP prints:
  539.  
  540.    No work to be done. File unchanged.
  541.  
  542. and proceeds to the next file.
  543.  
  544.  3.5 Rebuild
  545.  -----------
  546.  
  547.    If the file does need to be rebuilt, either due to extra characters
  548. or format violations, GIFSTRIP prints:
  549.  
  550.    New size:    xxx   Bytes removed:    yyy
  551. Recopying... done.
  552.  
  553. where xxx is the size in bytes of the rebuilt file, and yyy is the
  554. difference between the size of the original file and the size of the
  555. rebuilt file. The next line ("Recopying...") is simply to indicate that
  556. GIFSTRIP is doing something. When GIFSTRIP prints "done." it is finished
  557. writing the rebuilt file and proceeds to the next file. The time and
  558. date of the original file are preserved in the rebuilt file.
  559.  
  560.  3.6 Examples
  561.  ------------
  562.  
  563. C:\>gifstrip g:\junk\vla.gif
  564.  
  565. Processing G:\JUNK\VLA.GIF...
  566. GIF87A  G--   21470    250 x   200 @ 128   G:\JUNK\VLA.GIF
  567.    G-S  (  0,  0)    250 x   200 @ 128   20970BY    83BL
  568.    GIF Terminator
  569.    New size:  21463   Bytes removed:      7
  570. Recopying... done.
  571.  
  572.    This file is a GIF87a format file. It has a global color table. The
  573. file is 21463 bytes long. The logical screen is 250 pixels wide and 200
  574. pixels high. The global color table contains 128 colors. The name of the
  575. file is "VLA.GIF" and it is in directory "\JUNK" on drive G:.
  576.  
  577.    This file contains one image. The image uses the global color table
  578. and is not interlaced. The upper left corner of the image is offset from
  579. the upper left corner of the logical screen by zero pixels horizontally
  580. and zero pixels vertically. The image is 250 pixels wide and 200 pixels
  581. high. The image has 128 colors. There are 20970 bytes of image data
  582. divided into 83 blocks.
  583.  
  584.    There is a GIF terminator.
  585.  
  586.    There were seven extra characters, so the file is rebuilt.
  587.  
  588.  
  589.  
  590.  
  591. C:\>gifstrip g:\junk\vla.gif
  592.  
  593. Processing G:\JUNK\VLA.GIF...
  594. GIF87A  G--   21463    250 x   200 @ 128   G:\JUNK\VLA.GIF
  595.    G-S  (  0,  0)    250 x   200 @ 128   20970BY    83BL
  596.    GIF Terminator
  597.    No work to be done. File unchanged.
  598.  
  599.    This example is the same file after it has already been stripped
  600. once. Since there are no extra characters and no format violations, it
  601. is not rebuilt.
  602.  
  603.  
  604.  
  605.  
  606. C:\>gifstrip -f g:\junk\vla.gif
  607.  
  608. Processing G:\JUNK\VLA.GIF...
  609. GIF87A  G--   21463    250 x   200 @ 128   G:\JUNK\VLA.GIF
  610.    G-S  (  0,  0)    250 x   200 @ 128   20970BY    83BL
  611.    GIF Terminator
  612.    New size:  21463   Bytes removed:      0
  613. Recopying... done.
  614.  
  615.    This example is the same file yet again, but the forced rebuild
  616. option is in effect. The size of the rebuilt file is the same as the
  617. size of the original file.
  618.  
  619.  
  620.  
  621.  
  622. C:\>gifstrip g:\junk\cg89a.gif
  623.  
  624. Processing G:\JUNK\CG89A.GIF...
  625. GIF89A  G--   26624    320 x   200 @ 256   G:\JUNK\CG89A.GIF
  626.    Comment Extension Block   161BY     1BL
  627.    FYI: Ignoring illegal local color table size (no local color table).
  628.    G-S  (  0,  0)    170 x   110 @ 256   12200BY    48BL
  629.    Plain Text Extension Block    24BY     2BL
  630.    Graphic Control Extension Block     4BY     1BL
  631.    Plain Text Extension Block    22BY     2BL
  632.    FYI: Ignoring illegal local color table size (no local color table).
  633.    G-S  (150, 90)    170 x   110 @ 256   12767BY    51BL
  634.    Plain Text Extension Block    26BY     2BL
  635.    Graphic Control Extension Block     4BY     1BL
  636.    Plain Text Extension Block    24BY     2BL
  637.    Graphic Control Extension Block     4BY     1BL
  638.    Plain Text Extension Block    20BY     2BL
  639.    Comment Extension Block   417BY     2BL
  640.    GIF Terminator
  641.    New size:  26624   Bytes removed:      0
  642. Recopying... done.
  643.  
  644.    This file is a GIF89a format file. It has a global color table. The
  645. global color table is not sorted. There is no aspect ratio data. The
  646. file is 26624 bytes long. The logical screen is 320 pixels wide and 200
  647. pixels high. The global color table contains 256 colors. The filename is
  648. "CG89A.GIF" and is in directory "\JUNK" on disk G:.
  649.  
  650.    This file contains two images and ten extension blocks, all of which
  651. were recognized and which represent three of the four recognized types.
  652.  
  653.    First, there is a Comment Extension Block, containing 161 bytes of
  654. data in one block.
  655.  
  656.    Second, there is an image. It has a nonzero local color table size
  657. but the local color table flag is not set, so an FYI message is printed
  658. out before the image information. The image uses the global color table
  659. and is not interlaced. The upper left corner of the image is offset from
  660. the upper left corner of the logical screen by zero pixles horizontally
  661. and zero pixels vertically. The image is 170 pixels wide by 110 pixels
  662. high, and has 256 colors. There are 12200 bytes of image data, divided
  663. into 48 blocks.
  664.  
  665.    Third is a Plain Text Extension Block, containing 24 bytes of data in
  666. two blocks.
  667.  
  668.    Fourth is a Graphic Control Extension Block. These always contain
  669. four bytes of data in one block.
  670.  
  671.    Fifth is a Plain Text Extension Block, containing 22 bytes of data in
  672. two blocks.
  673.  
  674.    Sixth is an image. It has a nonzero local color table size byt the
  675. local color table flag is not set, so an FYI message is printed out
  676. before the image information. The image uses the global color table and
  677. is not interlaced. The upper left corner of the image is offset from the
  678. upper left corner of the logical screen by 150 pixels horizontally (to
  679. the right) and 90 pixels vertically (down). The image is 170 pixels wide
  680. by 110 pixels high, and has 256 colors. There are 12767 bytes of image
  681. data, divided into 51 blocks.
  682.  
  683.    Seventh is a Plain Text Extension Block, containing 26 bytes of data
  684. in two blocks.
  685.  
  686.    Eigth is a Graphic Control Extension block.
  687.  
  688.    Ninth is a Plain Text Extension Block, containing 24 bytes of data in
  689. two blocks.
  690.  
  691.    Tenth is a Graphic Control Extension block.
  692.  
  693.    Eleventh is a Plain Text Extension Block, containing 20 bytes of data
  694. in two blocks.
  695.  
  696.    Twelfth and lastly, there is a Comment Extension Block containing 417
  697. bytes of data in two blocks.
  698.  
  699.    There is a GIF terminator.
  700.  
  701.    There were no extra characters, but there were format violations, so
  702. the file is rebuilt. The size of the rebuilt file is the same as the
  703. size of the original file. If the -n NOSTRICT option had been used, the
  704. FYI messages would not have been printed and the file would not have
  705. been rebuilt.
  706.  
  707.  
  708. 4. THE END
  709. ----------
  710.  
  711.    Technical support via email is available from the following addresses:
  712.  
  713.    INTERNET (the following are alternate addresses for the same place):
  714.       support@picarefy.com
  715.       picarefy!support@amc.com
  716.       picarefy!support@netcom.com
  717.       uunet!uw-coco!amc-gw!picarefy!support
  718.  
  719.    COMPUSERVE:
  720.       71261,1731
  721.  
  722.    GENIE:
  723.       J.BIRDSALL2
  724.  
  725.    Registrations should be sent to:
  726.  
  727.       James W. Birdsall
  728.       11112 NE 124 LN #D204
  729.       Kirkland, WA 98034
  730.  
  731.    If you have an email address on any of the networks listed above,
  732. please include it when registering. It is much easier to send updates by
  733. email. Also, please specify what sort of archive (ZIP, ZOO, ARC, LZH,
  734. ARJ, UNIX shar) you can handle most easily.
  735.  
  736.    NOTE: IF YOU DO NOT PROVIDE AN EMAIL ADDRESS, YOU WILL ONLY RECEIVE
  737. MAJOR VERSION UPDATES. YOU WILL NOT RECEIVE MINOR VERSIONS. PLEASE
  738. PROVIDE AN EMAIL ADDRESS IF YOU HAVE ANY WAY OF DOING SO.
  739.  
  740.